package com.atguigu.responsibilityChain;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description: 请求的处理者（抽象类）
 * @create: 2022-04-05 16:33
 **/
public abstract class Approver {
    /**
     * 下一个处理者
     */
    Approver approver;
    /**
     * 处理者的名称
     */
    String name;

    public Approver(String name) {
        this.name = name;
    }

    /**
     * 设置下一个处理者
     * @param approver 处理者
     */
    public void setApprover(Approver approver) {
        this.approver = approver;
    }

    /**
     * 处理审批请求的方法，得到一个请求，处理是子类完成，因此该方法做成抽象
     * @param purchaseRequest 请求的发送者类
     */
    public abstract void processRequest(PurchaseRequest purchaseRequest);
}
